package com.ethink.warehouse.api;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestParam;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ethink.warehouse.api.info.MateInventoryOtherInLogDetailInfo;
import com.ethink.warehouse.api.request.MateInventoryOtherInLogDetailAddRequest;
import com.ethink.warehouse.api.request.MateInventoryOtherInLogDetailQueryRequest;
import com.ethink.warehouse.api.request.MateInventoryOtherInLogDetailUpdateRequest;
import com.ethink.warehouse.api.response.MateInventoryOtherInLogDetailAddResponse;
import com.ethink.warehouse.api.response.MateInventoryOtherInLogDetailDeleteResponse;
import com.ethink.warehouse.api.response.MateInventoryOtherInLogDetailUpdateResponse;
import java.util.List;

/**
 * 其他入库明细 Facade接口
 *
 * @author default
 * @date 2023-02-09
 */
@FeignClient(name = "ethink-warehouse-service", path = "warehouse-service/facade/v1/mateInventoryOtherInLogDetail", contextId = "mateInventoryOtherInLogDetailFacade")
public interface MateInventoryOtherInLogDetailFacade {

    @PostMapping("/queryMateInventoryOtherInLogDetail")
    @ResponseBody
    Page<MateInventoryOtherInLogDetailInfo> queryMateInventoryOtherInLogDetail(@RequestBody MateInventoryOtherInLogDetailQueryRequest request);

    @PostMapping("/getMateInventoryOtherInLogDetailById")
    @ResponseBody
    MateInventoryOtherInLogDetailInfo getMateInventoryOtherInLogDetailById(@RequestParam("mateInventoryOtherInLogDetailId") Long mateInventoryOtherInLogDetailId);

    @PostMapping("/listMateInventoryOtherInLogDetail")
    @ResponseBody
    List<MateInventoryOtherInLogDetailInfo> listMateInventoryOtherInLogDetail(@RequestBody MateInventoryOtherInLogDetailQueryRequest request);

    @PostMapping("/addMateInventoryOtherInLogDetail")
    @ResponseBody
    MateInventoryOtherInLogDetailAddResponse addMateInventoryOtherInLogDetail(@RequestBody MateInventoryOtherInLogDetailAddRequest request);

    @PostMapping("/updateMateInventoryOtherInLogDetail")
    @ResponseBody
    MateInventoryOtherInLogDetailUpdateResponse updateMateInventoryOtherInLogDetail(@RequestBody MateInventoryOtherInLogDetailUpdateRequest request);

    @PostMapping("/deleteMateInventoryOtherInLogDetail")
    @ResponseBody
    MateInventoryOtherInLogDetailDeleteResponse deleteMateInventoryOtherInLogDetail(@RequestParam("mateInventoryOtherInLogDetailId") Long mateInventoryOtherInLogDetailId);

}